home *** CD-ROM | disk | FTP | other *** search
/ Enter 2010 January / ENTER_2010_01.iso / Programy / Gry / Base_Invaders_ / BaseInvadersSetup1.3.exe / {app} / Scripts / LevelConfig.lua < prev    next >
Encoding:
Text File  |  2007-01-25  |  3.9 KB  |  148 lines

  1.  
  2. InCampaign = false;
  3. CurrentLevel = 0;
  4.  
  5. MaxLevelNum = 11;
  6.  
  7. LevelFileList = {}
  8.  
  9. -- Note: These are the campaign levels
  10. LevelFileList[1] = "Scripts/Campaign1Startup.lua";
  11. LevelFileList[2] = "Scripts/Campaign2Startup.lua";
  12. LevelFileList[3] = "Scripts/Campaign3Startup.lua";
  13. LevelFileList[4] = "Scripts/Campaign4Startup.lua";
  14. LevelFileList[5] = "Scripts/Campaign5Startup.lua";
  15. LevelFileList[6] = "Scripts/Campaign6Startup.lua";
  16. LevelFileList[7] = "Scripts/Campaign7Startup.lua";
  17. LevelFileList[8] = "Scripts/Campaign8Startup.lua";
  18. LevelFileList[9] = "Scripts/Campaign9Startup.lua";
  19. LevelFileList[10] = "Scripts/Campaign10Startup.lua";
  20.  
  21. -- End with quickstart until we have limits:
  22. LevelFileList[MaxLevelNum] = "Scripts/QuickStartStartup.lua";
  23.  
  24.  
  25. -- Generic Level Start function
  26. function StartLevel( levelname )
  27.  
  28.     G.SetLoopingMusic( "Music/invasion_laxed.mp3");
  29.  
  30.     G.ActivateBackground( -1 );
  31.     G.DestroyGroup("camera");        
  32.     
  33.     if( not( MainMenu == nil ) and MainMenu.IsValid() ) then
  34.         MainMenu.CloseWindow( "LevelChoiceWindow" );
  35.     end
  36.  
  37.     G.LogicCreateLevel( levelname );
  38.  
  39.     G.SetPause( true );
  40.     G.SetCursorActive( false );
  41. end
  42.  
  43. function StartLevelCampaign( levelNumber )
  44.     CurrentLevel = levelNumber
  45.     InCampaign = true
  46.     
  47.     StartLevel( LevelFileList[CurrentLevel] ) 
  48. end
  49.  
  50. ---------------------------------------------------------------------------
  51. -- In-Game Music Update function
  52. ---------------------------------------------------------------------------
  53.  
  54. CurMusicLevel = 0
  55. function SwitchGameMusicLevel( newLevel )
  56.  
  57.     if( newLevel == CurMusicLevel ) then
  58.         return
  59.     end
  60.     
  61.     CurMusicLevel = newLevel
  62.     
  63.     if( CurMusicLevel == 2 ) then
  64.         G.SwapFade("Music/invasion_maxed.mp3", 0.25 );
  65.     elseif( CurMusicLevel == 1) then
  66.         G.SwapFade("Music/invasion_haxed.ogg", 0.25 );    -- taxed.mp3 AKA haxed.ogg
  67.     elseif( CurMusicLevel == 0) then
  68.         G.SwapFade("Music/invasion_laxed.mp3", 0.25 );
  69.     end    
  70.  
  71. end
  72.  
  73. function UpdateGameMusic()
  74.     -- Change music depending on tower level
  75.     local tower = G.GetCogName("Tower");
  76.     if( tower.IsValid() ) then
  77.     
  78.         local curTowerLevel = tower.GetTowerLevel()
  79.         
  80.         if( curTowerLevel <= 2 ) then
  81.             SwitchGameMusicLevel( 2 )
  82.         elseif( curTowerLevel <= 4 ) then        
  83.             SwitchGameMusicLevel( 1 )
  84.         else
  85.             SwitchGameMusicLevel( 0 )
  86.         end
  87.         
  88.     end
  89. end
  90.  
  91. ---------------------------------------------------------------------------
  92. -- Generic Level Exit function
  93. ---------------------------------------------------------------------------
  94. --[[
  95. function LevelExitDesc()
  96.     if ( GameState == QuitLevel )then
  97.         G.ActiveBackGround( 2 );
  98.         
  99.         TraitorTalk( "Hey where are you going!?!" )
  100.         
  101.         return "YOU QUIT!";
  102.     elseif(  GameState == Victory )then
  103.         G.ActiveBackGround( 1 );
  104.         return "YOU WON!";
  105.     elseif( GameState == Defeat )then
  106.         G.ActiveBackGround( 2 );
  107.         
  108.         TraitorTalk( "Oh no! The base, it's been invaded!" )    
  109.         
  110.         return "YOU LOST!";
  111.     end
  112. end
  113.  
  114. ---------------------------------------------------------------------------
  115. -- Generic Level Update function
  116. ---------------------------------------------------------------------------
  117.  
  118. -- Not really a victory check, this checks for defeat!
  119. function CheckLevelCompletion()
  120.     local tower = G.GetCogName("Tower");
  121.     
  122.     if( not tower.IsValid() ) then
  123.         G.SetGameState( Defeat );    
  124.     end
  125.     
  126.     if( not( GameState == InLevel ) ) then
  127.         dofile( "Scripts/GameOver.lua" );        -- The gameover script should do all exit functionality:
  128.         GMain["LevelUpdate"] = nil;
  129.     end        
  130. end
  131.     
  132. function LevelUpdate()
  133.     
  134.     -- Make sure the player isn't trying to exit the level
  135.     CheckLevelCompletion()
  136.     UpdateGameMusic()
  137.     -- This is the intro, where you check for level 
  138.     if( levelRoutine ) then    
  139.         local con, error = coroutine.resume( levelRoutine )
  140.  
  141.         -- Start the Level Sequence:
  142.         if( con == false and GameState == InLevel ) then    
  143.             G.Mes( error )
  144.             levelRoutine = coroutine.create( LevelSequence )
  145.         end    
  146.     end    
  147. end
  148. ]]--